package com.junzhiit.nengji.cms.service;

import java.util.List;
import java.util.Map;

import com.junzhiit.nengji.cms.web.vo.DataTablesParamVO;
import com.junzhiit.nengji.cms.web.vo.GoodsListVO;
import com.junzhiit.nengji.cms.web.vo.ResultVO;
import com.junzhiit.nengji.cms.web.vo.ShopAddVO;
import com.junzhiit.nengji.cms.web.vo.ShopEditVO;
import com.junzhiit.nengji.cms.web.vo.ShopUpdateVO;
import com.junzhiit.nengji.cms.web.vo.ShopVO;
import com.junzhiit.nengji.cms.web.vo.SystemUserAddVO;
import com.junzhiit.nengji.model.WechatConfig;
import com.intranet.transport.object.ShopAreaTO;

public interface ShopService {

	/**
	 * 
	 * TODO 获取商户列表
	 * 
	 * @author PeterMo
	 * @time 2018年1月20日 下午2:04:32
	 * @return Map<String,Object>
	 */
	public Map<String, Object> findAll(DataTablesParamVO dtp, ShopVO shopVO);
	
	/**
	 * 
	 * TODO 获取商户列表简洁信息不分页
	 * 
	 * @author DlamLiu
	 * @time 2018年6月14日 下午17:44:32
	 * @return Map<String,Object>
	 */
	public ResultVO findAllConcise();
	/**
	 * 
	 * TODO
	 * @author FebRosy
	 * @time 2018年4月26日 下午7:55:24
	 * @return ResultVO
	 */
	public ResultVO findById(String sessionId);

	/**
	 * 
	 * TODO 根据店铺ID 查询信息
	 * 
	 * @author PeterMo
	 * @time 2018年1月20日 下午2:04:17
	 * @return ResultVO
	 */
	public ResultVO getShopById(String id);

	/**
	 * 
	 * TODO 更新商户
	 * 
	 * @author PeterMo
	 * @time 2018年1月22日 上午11:11:23
	 * @return ResultVO
	 */
	public ResultVO update(ShopUpdateVO shopUpdateVO);

	
	public ResultVO getShopList();

	/**
	 * 
	 * TODO
	 * 
	 * @author FebRosy
	 * @time 2018年2月8日 上午10:21:01
	 * @return ResultVO
	 */
	public ResultVO getById(String sessionId);

	/**
	 * 
	 * TODO 编辑店铺信息
	 * 
	 * @author Qjen
	 * @time 2018年1月29日 下午5:28:02
	 * @return ResultVO
	 *
	 */
	public ResultVO editShop(ShopEditVO shopEditVO);

	/**
	 * 
	 * TODO 删除店铺头像
	 * 
	 * @author FebRosy
	 * @time 2018年2月8日 下午3:46:56
	 * @return ResultVO
	 */
	public ResultVO delShopHeadImgUrl(String shopHeadImgUrl, String sessionId);
	
	/**
	 * 
	 * TODO 删除背景图片
	 * 
	 * @author FebRosy
	 * @time 2018年3月5日 下午3:47:44
	 * @return ResultVO
	 */
	public ResultVO delBackgroundImage(String backgroundImage, String sessionId);

	/**
	 * 
	 * TODO 删除背景图片
	 * 
	 * @author FebRosy
	 * @time 2018年2月9日 上午9:50:05
	 * @return ResultVO
	 */
	public ResultVO delBannerImages(String bannerImage, String sessionId);
	
	/**
	 * 
	 * TODO 店铺审核
	 * @author PeterMo
	 * @time 2018年3月6日 下午2:53:02
	 * @return ResultVO
	 */
	public ResultVO merchantsAudit(ShopVO shopVO);
	
	/**
	 * 
	 * TODO 根据店铺ID查询微信配置
	 * @author PeterMo
	 * @time 2018年3月12日 下午3:24:41
	 * @return ResultVO
	 */
	public ResultVO getShopWechatConfig(String sessionId);
	
	/**
	 * 
	 * TODO 新增或修改微信配置
	 * @author PeterMo
	 * @time 2018年3月12日 下午4:32:56
	 * @return ResultVO
	 */
	public ResultVO addOrUpdateWechatConfig(WechatConfig wechatConfig,String sessionId);
	
	/**
	 * 
	 * TODO 根据定时器更新店铺的到期时间(过期)
	 * @author Zaki
	 * @time 2018年4月18日 下午5:10:20
	 * @return void
	 */
	public void updateShopExpireTime();
	
	/**
	 * 
	 * TODO 添加店铺信息
	 * 
	 * @author FEB
	 * @time 2018年5月23日 下午8:18:11
	 * @return ResultVO
	 */
	public ResultVO add(SystemUserAddVO systemUserAddVO,ShopAddVO shopAddVO,String setMealId,String sessionId);
	
	/**
	 * 
	 * TODO 生成店铺二维码
	 * @author PeterMo
	 * @time 2018年5月10日 下午8:36:24
	 * @return ResultVO
	 */
	public ResultVO createQrcode(String shopId);
	
	/**
	 * 
	 * TODO 查询所有的待审核商品的店铺(除去连锁品牌下的商户)
	 * 
	 * @author Qjen
	 * @time 2018年5月17日 上午10:53:39
	 * @return ResultVO
	 *
	 */
	public ResultVO getGoodsAuditShopSelect();
	
	/**
	 * TODO 给即将到期的商户发送短信
	 * @author Zaki
	 * @time 2018年5月16日 下午8:32:43
	 * @return void
	 */
	public void sendRemindInfo();
	
	/**
	 * 
	 * TODO 获得店铺列表
	 * 
	 * @author Qjen
	 * @time 2018年5月18日 下午4:11:40
	 * @return ResultVO
	 *
	 */
	public ResultVO getShopList(String sessionId,Integer type);
	
	
	/**
	 * 
	 * TODO 获取店铺集合
	 * @author FEB
	 * @time 2018年5月24日 上午9:49:08
	 * @return ResultVO
	 */
	public Map<String, Object> findShopList(DataTablesParamVO dtp,ShopVO shopVO);
	
	/**
	 * 
	 * TODO 给到期的商户发送短信
	 * @author Zaki
	 * @time 2018年5月23日 下午1:45:33
	 * @return void
	 */
	public void sendRemindExpireInfo();
	
	/**
	 * 
	 * TODO 根据店铺ID查找主体账号
	 * @author Zaki
	 * @time 2018年5月25日 上午11:02:15
	 * @return ResultVO
	 */
	public ResultVO getShopMainAccount(String sessionId);
	
	/**
	 * 
	 * TODO 根据店铺id获取商品列表
	 * @author Harry
	 * @time 2018年7月7日 下午6:08:56
	 * @return Map<String,Object>
	 */
	public Map<String,Object> findGoodsListByShopId(DataTablesParamVO dtp,GoodsListVO glv);
	
	/**
	 * 	根据时间条件查询最高200条店铺记录
	 * @param time yyyy-MM-dd hh:mm:ss
	 * @return List<ShopAreaTO>
	 */
	public List<ShopAreaTO> findTop200ByTime(String time);
	
	 /** 
	 * TODO
	 * @author FEB
	 * @time 2018年7月23日 下午2:04:15
	 * @return ResultVO
	 */
	public ResultVO getProgramShop();
	/**
	 * 
	 * TODO 获取品牌下所有店铺列表(下拉框)
	 * @author Harry
	 * @time 2018年8月2日 下午5:32:31
	 * @return ResultVO
	 */
	public ResultVO getShopList(String sessionId);
	
	/**
	 * 
	 * TODO 检查该登录对象为连锁平台总部还是连锁单店(0:连锁单店,1:连锁平台总部)
	 * @author Zaki
	 * @time 2018年8月15日 下午4:32:23
	 * @return ResultVO
	 */
	public ResultVO checkShopType(String sessionId);
	
	/**
	 * 
	 * TODO 连锁商户-修改门店信息
	 * @author Zaki
	 * @time 2018年8月30日 下午2:54:34
	 * @return ResultVO
	 */
	public ResultVO updateByShopId(ShopEditVO shopEditVO);
	
	/**
	 * 
	 * TODO 获取商户列表(模块店铺管理,区分平台)
	 * @auhor Harry
	 * @time 2018年8月29日下午5:07:21
	 * @return Map<String,Object>
	 */
	public Map<String,Object> getList(DataTablesParamVO dtp,ShopVO sv);
}
